package com.linxiao.call.domain;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 回呼话单对象 crm_call_back_cdr
 *
 * @author qiqi
 * @date 2022-04-12
 */
public class CrmCallBackCdr extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 企业ID */
    @Excel(name = "企业ID")
    private String cdrEnterpriseId;

    /** 中继号码 */
    @Excel(name = "中继号码")
    private String cdrNumberTrunk;

    /** 热线号码 */
    @Excel(name = "热线号码")
    private String cdrHotline;

    /** 通话标识 */
    @Excel(name = "通话标识")
    private String cdrMainUniqueId;

    /** 客户号码 */
    @Excel(name = "客户号码")
    private String cdrCustomerNumber;

    /** 客户号码所属区号 */
    @Excel(name = "客户号码所属区号")
    private String cdrCustomerAreaCode;

    /** 客户号码所属城市 */
    @Excel(name = "客户号码所属城市")
    private String cdrCustomerCity;

    /** 客户号码所属省份 */
    @Excel(name = "客户号码所属省份")
    private String cdrCustomerProvince;

    /** 客户号码类型 1 固话 2 手机 */
    @Excel(name = "客户号码类型 1 固话 2 手机")
    private Long cdrCustomerNumberType;

    /** 呼叫状态，取值说明：1 座席接听; 2 已呼叫座席,座席未接听; 3 系统接听; 4 系统未接-IVR配置错误; 5 系统未接-停机; */
    @Excel(name = "呼叫状态，取值说明：1 座席接听; 2 已呼叫座席,座席未接听; 3 系统接听; 4 系统未接-IVR配置错误; 5 系统未接-停机;")
    private Long cdrStatus;

    /** 呼叫类型，取值说明：1 呼入 */
    @Excel(name = "呼叫类型，取值说明：1 呼入")
    private Long cdrCallType;

    /** 接听的座席工号 */
    @Excel(name = "接听的座席工号")
    private String cdrCalleeCno;

    /** 呼入进入队列时间 */
    @Excel(name = "呼入进入队列时间")
    private String cdrJoinQueueTime;

    /** 呼入座席接听时间 */
    @Excel(name = "呼入座席接听时间")
    private String cdrBridgeTime;

    /** 进入系统时间 */
    @Excel(name = "进入系统时间")
    private String cdrStartTime;

    /** 系统接听时间 */
    @Excel(name = "系统接听时间")
    private String cdrAnswerTime;

    /** 呼入挂机时间 */
    @Excel(name = "呼入挂机时间")
    private String cdrEndTime;

    /** 录音文件名称 */
    @Excel(name = "录音文件名称")
    private String cdrRecordFile1;

    /** 挂机原因，取值说明：1000 主通道挂机; 1001 非主通道挂机; 1002 被强拆; */
    @Excel(name = "挂机原因，取值说明：1000 主通道挂机; 1001 非主通道挂机; 1002 被强拆;")
    private String cdrEndReason;

    /** 呼入双方接听时长 */
    @Excel(name = "呼入双方接听时长")
    private String cdrEndTimeCdrBridgeTime;

    /** 队列号 */
    @Excel(name = "队列号")
    private String cdrQueue;

    /** 号码状态识别结果 710:忙 711:超时 712:拒接 713:空号 714:关机 715:暂时无法接听 716:停机 */
    @Excel(name = "号码状态识别结果 710:忙 711:超时 712:拒接 713:空号 714:关机 715:暂时无法接听 716:停机")
    private String cdrDetailSipCause;

    /** 满意度调查开始时间，如果没有进行满意度调查值为0 */
    @Excel(name = "满意度调查开始时间，如果没有进行满意度调查值为0")
    private String cdrInvestigation;

    /** 客户id */
    @Excel(name = "客户id")
    private String crmId;

    /** 二级部门所在id */
    @Excel(name = "二级部门所在id")
    private Long mchId;

    /** 当前员工所在部门id */
    @Excel(name = "当前员工所在部门id")
    private Long deptId;

    /** 文件大小 */
    @Excel(name = "文件大小")
    private Long fileSize;

    /** cos录音文件地址 */
    private String cosRecordUrl;

    /** 创建时间 */
    private String startTime;

    /** 录音文件类型:录音(record)，留言(voicemail) */
    private String recordType;
    /** 用户id */
    private Long userId;
    /** 部门名称 */
    private transient String deptName;

    /** 销售名称 */
    private transient String nickName;

    /** 客户名称 */
    private transient String customerName;

    /** 通话备注 */
    private transient String comment;

    /** 通话备注类型 */
    private transient String commentType;
    /** 通话备注ID*/
    private transient Long  commentId;
    /**订单号*/
    private transient String orderId;

    /**渠道订单号*/
    private transient String coopOrderID;

    /**
     * RTC外呼携带的主体
     */
    private transient String corpId;
    /**
     * RTC外呼携带的成员ID
     */
    private transient String corpUserId;

    public String getCorpId() {
        return corpId;
    }

    public void setCorpId(String corpId) {
        this.corpId = corpId;
    }

    public String getCorpUserId() {
        return corpUserId;
    }

    public void setCorpUserId(String corpUserId) {
        this.corpUserId = corpUserId;
    }

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public String getCoopOrderID() {
        return coopOrderID;
    }

    public void setCoopOrderID(String coopOrderID) {
        this.coopOrderID = coopOrderID;
    }

    public Long getCommentId() {
        return commentId;
    }

    public void setCommentId(Long commentId) {
        this.commentId = commentId;
    }

    public String getCommentType() {
        return commentType;
    }

    public void setCommentType(String commentType) {
        this.commentType = commentType;
    }

    public String getComment() {
        return comment;
    }

    public void setComment(String comment) {
        this.comment = comment;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    /* 手机号脱敏字段 */
    private String mobileHidden;

    public String getMobileHidden() {
        return mobileHidden;
    }

    public void setMobileHidden(String mobileHidden) {
        this.mobileHidden = mobileHidden;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public String getRecordType() {
        return recordType;
    }

    public void setRecordType(String recordType) {
        this.recordType = recordType;
    }

    public String getStartTime() {
        return startTime;
    }

    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }

    public String getCosRecordUrl() {
        return cosRecordUrl;
    }

    public void setCosRecordUrl(String cosRecordUrl) {
        this.cosRecordUrl = cosRecordUrl;
    }

    /* Long类型的主键id 返回前端会自动转换 存在问题 转字符串解决 */
    private transient String cdrId;


    public String getCdrId() {
        return cdrId;
    }

    public void setCdrId(String cdrId) {
        this.cdrId = cdrId;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setCdrEnterpriseId(String cdrEnterpriseId)
    {
        this.cdrEnterpriseId = cdrEnterpriseId;
    }

    public String getCdrEnterpriseId()
    {
        return cdrEnterpriseId;
    }
    public void setCdrNumberTrunk(String cdrNumberTrunk)
    {
        this.cdrNumberTrunk = cdrNumberTrunk;
    }

    public String getCdrNumberTrunk()
    {
        return cdrNumberTrunk;
    }
    public void setCdrHotline(String cdrHotline)
    {
        this.cdrHotline = cdrHotline;
    }

    public String getCdrHotline()
    {
        return cdrHotline;
    }
    public void setCdrMainUniqueId(String cdrMainUniqueId)
    {
        this.cdrMainUniqueId = cdrMainUniqueId;
    }

    public String getCdrMainUniqueId()
    {
        return cdrMainUniqueId;
    }
    public void setCdrCustomerNumber(String cdrCustomerNumber)
    {
        this.cdrCustomerNumber = cdrCustomerNumber;
    }

    public String getCdrCustomerNumber()
    {
        return cdrCustomerNumber;
    }
    public void setCdrCustomerAreaCode(String cdrCustomerAreaCode)
    {
        this.cdrCustomerAreaCode = cdrCustomerAreaCode;
    }

    public String getCdrCustomerAreaCode()
    {
        return cdrCustomerAreaCode;
    }
    public void setCdrCustomerCity(String cdrCustomerCity)
    {
        this.cdrCustomerCity = cdrCustomerCity;
    }

    public String getCdrCustomerCity()
    {
        return cdrCustomerCity;
    }
    public void setCdrCustomerProvince(String cdrCustomerProvince)
    {
        this.cdrCustomerProvince = cdrCustomerProvince;
    }

    public String getCdrCustomerProvince()
    {
        return cdrCustomerProvince;
    }
    public void setCdrCustomerNumberType(Long cdrCustomerNumberType)
    {
        this.cdrCustomerNumberType = cdrCustomerNumberType;
    }

    public Long getCdrCustomerNumberType()
    {
        return cdrCustomerNumberType;
    }
    public void setCdrStatus(Long cdrStatus)
    {
        this.cdrStatus = cdrStatus;
    }

    public Long getCdrStatus()
    {
        return cdrStatus;
    }
    public void setCdrCallType(Long cdrCallType)
    {
        this.cdrCallType = cdrCallType;
    }

    public Long getCdrCallType()
    {
        return cdrCallType;
    }
    public void setCdrCalleeCno(String cdrCalleeCno)
    {
        this.cdrCalleeCno = cdrCalleeCno;
    }

    public String getCdrCalleeCno()
    {
        return cdrCalleeCno;
    }
    public void setCdrJoinQueueTime(String cdrJoinQueueTime)
    {
        this.cdrJoinQueueTime = cdrJoinQueueTime;
    }

    public String getCdrJoinQueueTime()
    {
        return cdrJoinQueueTime;
    }
    public void setCdrBridgeTime(String cdrBridgeTime)
    {
        this.cdrBridgeTime = cdrBridgeTime;
    }

    public String getCdrBridgeTime()
    {
        return cdrBridgeTime;
    }
    public void setCdrStartTime(String cdrStartTime)
    {
        this.cdrStartTime = cdrStartTime;
    }

    public String getCdrStartTime()
    {
        return cdrStartTime;
    }
    public void setCdrAnswerTime(String cdrAnswerTime)
    {
        this.cdrAnswerTime = cdrAnswerTime;
    }

    public String getCdrAnswerTime()
    {
        return cdrAnswerTime;
    }
    public void setCdrEndTime(String cdrEndTime)
    {
        this.cdrEndTime = cdrEndTime;
    }

    public String getCdrEndTime()
    {
        return cdrEndTime;
    }
    public void setCdrRecordFile1(String cdrRecordFile1)
    {
        this.cdrRecordFile1 = cdrRecordFile1;
    }

    public String getCdrRecordFile1()
    {
        return cdrRecordFile1;
    }
    public void setCdrEndReason(String cdrEndReason)
    {
        this.cdrEndReason = cdrEndReason;
    }

    public String getCdrEndReason()
    {
        return cdrEndReason;
    }
    public void setCdrEndTimeCdrBridgeTime(String cdrEndTimeCdrBridgeTime)
    {
        this.cdrEndTimeCdrBridgeTime = cdrEndTimeCdrBridgeTime;
    }

    public String getCdrEndTimeCdrBridgeTime()
    {
        return cdrEndTimeCdrBridgeTime;
    }
    public void setCdrQueue(String cdrQueue)
    {
        this.cdrQueue = cdrQueue;
    }

    public String getCdrQueue()
    {
        return cdrQueue;
    }
    public void setCdrDetailSipCause(String cdrDetailSipCause)
    {
        this.cdrDetailSipCause = cdrDetailSipCause;
    }

    public String getCdrDetailSipCause()
    {
        return cdrDetailSipCause;
    }
    public void setCdrInvestigation(String cdrInvestigation)
    {
        this.cdrInvestigation = cdrInvestigation;
    }

    public String getCdrInvestigation()
    {
        return cdrInvestigation;
    }

    public String getCrmId() {
        return crmId;
    }

    public void setCrmId(String crmId) {
        this.crmId = crmId;
    }

    public void setMchId(Long mchId)
    {
        this.mchId = mchId;
    }

    public Long getMchId()
    {
        return mchId;
    }
    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }
    public void setFileSize(Long fileSize)
    {
        this.fileSize = fileSize;
    }

    public Long getFileSize()
    {
        return fileSize;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("cdrEnterpriseId", getCdrEnterpriseId())
            .append("cdrNumberTrunk", getCdrNumberTrunk())
            .append("cdrHotline", getCdrHotline())
            .append("cdrMainUniqueId", getCdrMainUniqueId())
            .append("cdrCustomerNumber", getCdrCustomerNumber())
            .append("cdrCustomerAreaCode", getCdrCustomerAreaCode())
            .append("cdrCustomerCity", getCdrCustomerCity())
            .append("cdrCustomerProvince", getCdrCustomerProvince())
            .append("cdrCustomerNumberType", getCdrCustomerNumberType())
            .append("cdrStatus", getCdrStatus())
            .append("cdrCallType", getCdrCallType())
            .append("cdrCalleeCno", getCdrCalleeCno())
            .append("cdrJoinQueueTime", getCdrJoinQueueTime())
            .append("cdrBridgeTime", getCdrBridgeTime())
            .append("cdrStartTime", getCdrStartTime())
            .append("cdrAnswerTime", getCdrAnswerTime())
            .append("cdrEndTime", getCdrEndTime())
            .append("cdrRecordFile1", getCdrRecordFile1())
            .append("cdrEndReason", getCdrEndReason())
            .append("cdrEndTimeCdrBridgeTime", getCdrEndTimeCdrBridgeTime())
            .append("cdrQueue", getCdrQueue())
            .append("cdrDetailSipCause", getCdrDetailSipCause())
            .append("cdrInvestigation", getCdrInvestigation())
            .append("crmId", getCrmId())
            .append("mchId", getMchId())
            .append("deptId", getDeptId())
            .append("fileSize", getFileSize())
            .toString();
    }
}
